package testPackage.testPackage;

import org.testng.Assert;
import org.testng.annotations.Test;

/**
 * step by step 08 TestNG依赖
 * 实现测试之间的依赖关系：
 * dependsOnMethod -指定测试应依赖的父级测试方法名称
 * 规则：
 * 1、在执行整个测试类或测试框架时，先执行父级测试方法再执行dependentTest方法
 * 2、单独执行dependentTest方法时，也要先执行父级测试方法
 * 3、如果父级测试方法执行失败，dependentTest方法将不会运行，并被记为已跳过
 * dependsOnGroup -指定测试方法所依赖的特定组测试的集合。
 * 规则：同上，要保证父级测试组的所有方法执行后，再执行dependentTest方法。
 */
public class Testng08 {
    @Test
    public void parentTest(){
        System.out.println("Running parent test.");
    }
    @Test(dependsOnMethods = {"parentTest"})
    public void dependentTest(){
        System.out.println("Running dependent test.");
    }
    @Test(groups = "groupsA")
    public void testMethod1OnGroupA(){
        System.out.println("Running test method1 of groupA.");
    }
    @Test(groups = "groupsA")
    public void testMethod2OnGroupA(){
        System.out.println("Running test method2 of groupA.");
        //Assert.fail("test fail.");
    }
    @Test(dependsOnGroups = "groupsA")
    public void dependentTestOnGroupA(){
        System.out.println("Running the dependent test of groupA.");
    }
}
